class Solution {
public:
    string convert(string s, int numRows) {
        if(numRows == 1) // 处理边界
            return s;
 
        string ret;
        int n = s.size(), d = 2 * numRows - 2;
        for(int i = 0; i < n; i += d) // 处理第一行
        {
            ret += s[i];
        }
        for(int k = 1; k < numRows-1; ++k) // 处理中间行
        {
            for(int i = k, j = d-k; i < n || j < n; i += d, j += d)
            {                    // i < n 和 j < n都要加到ret里
                if(i < n)
                    ret += s[i];
                if(j < n)
                    ret += s[j];
            }
        }
        for(int i = numRows-1; i < n; i += d) // 处理最后一行
        {
            ret += s[i];
        }
        return ret;
    }
};